memory: add production-faithful LongMemEval benchmark#17
Draft
Rememorio wants to merge 162 commits into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fairness and diagnostics
All three arms receive the same dated user/assistant pairs, answer model and prompt, semantic judge protocol, Top-K 30 search limit, and isolated identity scopes. Pgvector uses the production
MemoryService.EnqueueAutoMemoryJobpath and waits for each job before replay continues. Self-hosted Mem0 uses its public OSS API and configured open-source update behavior. Provider calls whose responses omit usage remain counted throughusage_missing_callsinstead of being treated as zero cost.The benchmark pins both the trpc-agent-go root module and independently versioned
memory/pgvectormodule to the current969fb16a918dcandidate. Manifests record question IDs, replay counts, model variants, prompt versions, dependency replacements, table identities, cache hashes, snapshot hashes, source revisions, image digests, and usage coverage.Selection-only mode writes the full versioned protocol payload and digest. A preregistered run rejects ad hoc filters, resampling, truncation, dataset or protocol drift, exclusion drift, case-metadata drift, dirty builds, and benchmark-revision drift before model initialization. Re-answering may replace only the answer/judge fields and records the original protocol digest; retrieval and selection changes still fail closed.
Traces separate extraction misses, reconciliation or persistence losses, retrieval misses, answer failures, and judge failures. Pair-scoped provenance prevents later unrelated memory from being credited for an answer-bearing pair that produced no memory. Formal answer replicates use empty independent answer and judge ledgers while sharing immutable ingestion and retrieval snapshots.
Current evidence
The frozen protocol-v2 baseline uses one fixed, already-observed 16-question development set spanning all six LongMemEval types. Each arm ingested all 183 dated conversation pairs with no truncation, Top-K 30, three independent answers per question, and three independent judge votes per answer.
The candidate baseline has no category deficit. Main's stable misses include two assistant-result cases, one preference-history case, and one answer-context case where the required memory was already stored and retrieved. Mem0's stable failures expose assistant-result provenance and retrieval-context selection issues; its additional unstable case scores 2/3.
The current private assistant-result prompt/schema compaction reduces dev16 memory tokens from 1,790,001 to 1,686,365 (-5.79%) and ingest time by 1.97%, while embedding tokens rise 5.68% and memories rise from 416 to 421. Its preregistered formal promotion remains rejected on the exact call bound (208 versus 207). A separate non-promotional diagnostic retains 48/48 correct answers and 144/144 valid judge votes.
Independent LoCoMo checks use fresh isolated parent/compact stores and three fixed-memory QA repeats. Extraction prompt tokens fall 5.90%, total extraction tokens fall 4.17%, and mean F1 is 0.6100 for parent versus 0.7320 for compact. The synthetic human-to-assistant role mapping limits this to cross-dataset cost and regression evidence.
Exact digests and the integrated interpretation are in the English report and Chinese report. No unseen blind holdout has been selected or run.
Agent dependency
github.com/Rememorio/trpc-agent-go@v0.0.0-20260721100707-969fb16a918dgithub.qkg1.top/Rememorio/trpc-agent-go/memory/pgvector@v0.0.0-20260721100707-969fb16a918dValidation
go test ./...inmemory/trpc-agent-go-implgo test ./... -count=1,go test -race ./... -count=1, andgo vet ./...